/** \file modelos.hpp
 *  \brief Definição das funções e dos modelos de diversos sistemas dinâmicos estudados durante a elaboração deste trabalho
 *  \author Geraldo Francisco de S. Rebouças | gfs.reboucas@gmail.com
 *  \since 28/11/2012
 *  \version 1.0
 *  \date 02/12/2012
 *  \see Veja a bibliografia desta dissertação */

// Diretrizes de pré-processamento para compilação condicional. Se modelos.hpp não foi definido, defina modelos.hpp. Isso evita a inserção duplicada de uma biblioteca num mesmo código-fonte.
#ifndef _MODELOS_HPP
#define _MODELOS_HPP

#include "funcoes.hpp"
#include "vetor.hpp"
// Modelos com incerteza:
/// Equações do oscilador de Duffing forçado
vetor Duffing(double T, vetor X, double PV);

/// Equações da junção RCSJ, com incerteza
vetor RCSJJ(double T, vetor X, double PV);

/// Equações do ROV, com incerteza
vetor ROV(double T, vetor X, double PV);

/// Equações do circuito RLD, com incerteza
vetor RLD(double T, vetor X, double PV);

/// Equações do oscilador de Van der Pol, com incerteza
vetor VdP(double T, vetor X, double PV);

// Modelos sem incerteza
/// Equações do modelo estimado do oscilador de Duffing forçado
vetor DuffingEst(double T, vetor X, double PV);

/// Equações do modelo estimado RCSJ das junções Josephson
vetor RCSJJest(double T, vetor X, double PV);

/// Equações do modelo estimado do circuito RLD.
vetor RLDest(double T, vetor X, double PV);

/// Equações do modelo estimado do oscilador de Van der Pol.
vetor VdPest(double T, vetor X, double PV);

vetor Lorenz(double T, vetor X, double PV);

matriz LorenzJac(double T, vetor X, double PV);

matriz LorenzVE(double T, vetor X, matriz Fi, double PV);

#endif // _MODELOS_HPP
